home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / PowerPC / pdflib / bind / java / pdfclock.java < prev    next >
Text File  |  2000-05-16  |  3KB  |  116 lines

  1. /* hello.java
  2.  * Copyright (C) 1997-99 Thomas Merz. All rights reserved.
  3.  *
  4.  * PDFlib client: pdfclock example in Java
  5.  */
  6.  
  7. import java.text.*;        // SimpleDateFormat
  8. import java.util.*;        // Date
  9.  
  10. public class pdfclock
  11. {
  12.     public static void main (String argv[])
  13.     {
  14.     long p;
  15.     int tm_hour, tm_min, tm_sec, alpha;
  16.     float RADIUS = 200.0f;
  17.     float MARGIN = 20.0f;
  18.     SimpleDateFormat format;
  19.     Date now = new Date();
  20.  
  21.     p = pdflib.PDF_new();
  22.  
  23.     if (pdflib.PDF_open_file(p, "pdfclock_java.pdf") == -1) {
  24.         System.err.println("Couldn't open PDF file" +"pdfclock_java.pdf\n");
  25.         System.exit(1);
  26.     }
  27.  
  28.     pdflib.PDF_set_info(p, "Creator", "pdfclock.java");
  29.     pdflib.PDF_set_info(p, "Author", "Thomas Merz");
  30.     pdflib.PDF_set_info(p, "Title", "PDF clock (Java)");
  31.  
  32.     pdflib.PDF_begin_page(p,   (int) (2 * (RADIUS + MARGIN)),
  33.                 (int) (2 * (RADIUS + MARGIN)));
  34.  
  35.     pdflib.PDF_set_transition(p, "wipe");
  36.     pdflib.PDF_set_duration(p, 0.5f);
  37.  
  38.     pdflib.PDF_translate(p, RADIUS + MARGIN, RADIUS + MARGIN);
  39.     pdflib.PDF_setrgbcolor(p, 0.0f, 0.0f, 1.0f);
  40.     pdflib.PDF_save(p);
  41.  
  42.     // minute strokes 
  43.     pdflib.PDF_setlinewidth(p, 2.0f);
  44.     for (alpha = 0; alpha < 360; alpha += 6)
  45.     {
  46.         pdflib.PDF_rotate(p, 6.0f);
  47.         pdflib.PDF_moveto(p, RADIUS, 0.0f);
  48.         pdflib.PDF_lineto(p, RADIUS-MARGIN/3, 0.0f);
  49.         pdflib.PDF_stroke(p);
  50.     }
  51.  
  52.     pdflib.PDF_restore(p);
  53.     pdflib.PDF_save(p);
  54.  
  55.     // 5 minute strokes
  56.     pdflib.PDF_setlinewidth(p, 3.0f);
  57.     for (alpha = 0; alpha < 360; alpha += 30)
  58.     {
  59.         pdflib.PDF_rotate(p, 30.0f);
  60.         pdflib.PDF_moveto(p, RADIUS, 0.0f);
  61.         pdflib.PDF_lineto(p, RADIUS-MARGIN, 0.0f);
  62.         pdflib.PDF_stroke(p);
  63.     }
  64.  
  65.     // how to correctly set the time zone?
  66.     format = new SimpleDateFormat("hh");
  67.     tm_hour= Integer.parseInt(format.format(now));
  68.     format = new SimpleDateFormat("mm");
  69.     tm_min = Integer.parseInt(format.format(now));
  70.     format = new SimpleDateFormat("ss");
  71.     tm_sec = Integer.parseInt(format.format(now));
  72.  
  73.     // draw hour hand 
  74.     pdflib.PDF_save(p);
  75.     pdflib.PDF_rotate(p, (-((tm_min/60.0f) + tm_hour - 3.0f) * 30.0f));
  76.     pdflib.PDF_moveto(p, -RADIUS/10, -RADIUS/20);
  77.     pdflib.PDF_lineto(p, RADIUS/2, 0.0f);
  78.     pdflib.PDF_lineto(p, -RADIUS/10, RADIUS/20);
  79.     pdflib.PDF_closepath(p);
  80.     pdflib.PDF_fill(p);
  81.     pdflib.PDF_restore(p);
  82.  
  83.     // draw minute hand
  84.     pdflib.PDF_save(p);
  85.     pdflib.PDF_rotate(p, (-((tm_sec/60.0f) + tm_min - 15.0f) * 6.0f));
  86.     pdflib.PDF_moveto(p, -RADIUS/10, -RADIUS/20);
  87.     pdflib.PDF_lineto(p, RADIUS * 0.8f, 0.0f);
  88.     pdflib.PDF_lineto(p, -RADIUS/10, RADIUS/20);
  89.     pdflib.PDF_closepath(p);
  90.     pdflib.PDF_fill(p);
  91.     pdflib.PDF_restore(p);
  92.  
  93.     // draw second hand
  94.     pdflib.PDF_setrgbcolor(p, 1.0f, 0.0f, 0.0f);
  95.     pdflib.PDF_setlinewidth(p, 2);
  96.     pdflib.PDF_save(p);
  97.     pdflib.PDF_rotate(p, -((tm_sec - 15.0f) * 6.0f));
  98.     pdflib.PDF_moveto(p, -RADIUS/5, 0.0f);
  99.     pdflib.PDF_lineto(p, RADIUS, 0.0f);
  100.     pdflib.PDF_stroke(p);
  101.     pdflib.PDF_restore(p);
  102.  
  103.     // draw little circle at center
  104.     pdflib.PDF_circle(p, 0f, 0f, RADIUS/30);
  105.     pdflib.PDF_fill(p);
  106.  
  107.     pdflib.PDF_restore(p);
  108.  
  109.     pdflib.PDF_end_page(p);
  110.  
  111.     pdflib.PDF_close(p);
  112.  
  113.     pdflib.PDF_delete(p);
  114.     }
  115. }
  116.